﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;

namespace OINS_VS08
{
    class Program
    {
        public List<ActiveHosts> ListOfFriends = new List<ActiveHosts>();
        static void Main(string[] args)
        {
            Program a=new Program();
            
            
            a.Intro();
            a.Menu();
         
            System.Console.ReadKey();
        }
        
        void Intro()
        {
            System.Console.WriteLine("################################################################################");
            System.Console.WriteLine("####                     Anonymous network P2P                              ####");
            System.Console.WriteLine("####         Designed by Maciej Strzelecki and Adam Zadura                  ####");
            System.Console.WriteLine("####                        Version: 0.002                                  ####");
            System.Console.WriteLine("################################################################################");
            System.Console.WriteLine("");
            System.Console.WriteLine("");
            System.Console.WriteLine("");
          
        }
        void Menu()
        {
            System.Console.WriteLine("         ###                  Wybierz odpowiednia cyfre               ####");
            System.Console.WriteLine("");
            System.Console.WriteLine("");
            System.Console.WriteLine("                               1) Podlacz do sieci");
            System.Console.WriteLine("                               2) Konfiguracja");
            System.Console.WriteLine("                               3) Przyjaciele");
            System.Console.WriteLine("                               4) Test AES'a");
            System.Console.WriteLine("                               5) Test CROWDS'a");

            int wybor;
            wybor = System.Console.Read();
            switch (wybor)
            {
                case '1':
                    Server2 ser = new Server2();
                    Thread forServing = new Thread(new ThreadStart(ser.Run));
                    forServing.Start();
                    Client2 cl = new Client2();
                    Thread forClient = new Thread(new ThreadStart(cl.Run));
                    
                    forClient.Start();
                   
                    break;
                case '2':
                    PodMenuKonfiguracji();
                    break;
                case '3':
                    Friends();
                    break;
                case '4':
                    AES aesik = new AES();
                    aesik.start();
                    break;
                case '5':
                    Crowds a = new Crowds();
                    a.listofN().Add("192.168.1.1");
                    a.listofN().Add("192.168.1.2");
                    a.listofN().Add("192.168.1.3");
                    a.listofN().Add("192.168.1.4");
                    a.listofN().Add("192.168.1.5");
                    a.listofN().Add("192.168.1.6");
                    a.listofN().Add("192.168.1.7");
                    a.listofN().Add("192.168.1.8");
                    a.listofN().Add("192.168.1.9");

                    System.Console.WriteLine(a.listofN().Count);
                    a.destinationNode = "192.168.1.7";
                    a.nextNode = "192.168.1.1";
                    while (a.send == 0)
                    {
                        a.start();
                    }
<<<<<<< .mine
                    
=======
                    //System.Console.Write(a.Random01());
>>>>>>> .r25
                    break;
            }

        }
        void Friends()
        {
            System.Console.WriteLine("Wpisz nazwe osoby ktora chcesz dodac: ");
            String naz;
            do
            {
                naz = System.Console.ReadLine();
            } while (naz == "");
            System.Console.WriteLine("Wpisz adres IP osoby ktora chcesz dodac: ");
            String ajpi;
            do
            {
                ajpi = System.Console.ReadLine();
            } while (ajpi == "");
            ListOfFriends.Add(new ActiveHosts(naz, ajpi));
            SaveFriends();

        }

        public void SaveFriends()
        {
            FileInfo saveFr = new FileInfo("d:/friends.txt");


            StreamWriter stream = new StreamWriter("d:/friends.txt", false);
            foreach (ActiveHosts f in ListOfFriends)
                stream.WriteLine(f.Name + "\t" + f.IP);
            stream.Close(); ;
        }


        void PodMenuKonfiguracji()
        {
            System.Console.WriteLine("Wybierz odpowiednia cyfre");
            System.Console.WriteLine("1. Dodaj sciezke do udostepenienia");
            System.Console.WriteLine("2. Wyswietl wszystkie udostepniane pliki");
            System.Console.WriteLine("3. Wyjdz");
            Resources res = new Resources();
            res.LoadTheList();
            int wybor;
           // do{
            System.Console.Read();
            System.Console.Read();
            
            wybor = System.Console.Read();
           
            switch(wybor)
            {
                case '1':
                    System.Console.WriteLine("podaj sciezke");
                    String a;
                    //System.Console.ReadKey();
                    do
                    {
                        a = System.Console.ReadLine();
                    } while (a == "");
                    res.AddFolderToResources(a);
                    res.SaveTheList();
                    System.Console.ReadKey();
                    break;
                    
                case '2':
                    res.ShowList();
                        break;
                case '3':
                        break;

            }
        


        }
       
    }
}
